草庐IT

c++ - XML Schema 到 C++ 类

全部标签

c++ - 什么是变量的链接和存储说明符?

当有人谈论变量存储类说明符时,他们在谈论什么?他们还经常在同一上下文中谈论变量链接,那是什么? 最佳答案 存储类说明符控制变量的存储和链接。这是两个不同的概念。C为变量指定了以下说明符:auto、extern、register、static。存储存储时间决定了你的变量在内存中的生存时间。存储时长分为静态、自动和动态三种。静态如果您的变量是在文件范围内声明的,或者带有extern或static说明符,它将具有静态存储。只要程序在执行,变量就会一直存在。创建这些变量不会花费执行时间。自动如果变量在函数中声明,但没有extern或stat

c++ - C 和 C++ 之间的主要区别是什么?您什么时候会选择一个而不是另一个?

对于那些对两者都有经验的人来说,主要区别是什么?对于两者的新手,学习哪个更好?在某些情况下您可能会选择C,但在其他情况下您会选择C++?是使用最适合工作的工具还是一个明显优于另一个的情况。我知道C++是C的“增强”,但它是在83年创建的,并没有完全取代C,所以它一定有更多的东西。我知道这个问题是主观的,我不是要挑起任何宗教war,所以请尽量客观。明确的优缺点和比较。 最佳答案 虽然C是一种纯过程语言,但C++是一种多范式语言。支持通用编程:允许编写一次代码,并将其用于不同的数据结构。元编程:允许利用模板在编译时生成高效代码。检查:允

c++ - 为什么gcc/clang要用两个128bit的xmm寄存器来传递一个值?

所以我偶然发现了一些我想了解的东西,因为它让我头疼。我有以下代码:#include#includetypedefunion{struct{floatx,y,z,w;}v;__m128m;}vec;vec__attribute__((noinline))square(veca){vecx={.m=_mm_mul_ps(a.m,a.m)};returnx;}intmain(intargc,char*argv[]){floatf=4.9;veca=(vec){f,f,f,f};vecres=square(a);//?printf("%f%f%f%f\n",res.v.x,res.v.y,re

c++ - 如何将 C++ vector 传递和访问到 OpenCL 内核?

我是C、C++和OpenCL的新手,目前正在尽最大努力学习它们。这是一个预先存在的C++函数,我试图找出如何使用C或C++绑定(bind)将其移植到OpenCL。#includeusingnamespacestd;classTest{private:doublea;vectorb;vectorc;vector>d;public:doublefoo(longx,doubley){//mathematicaloperations//usingx,y,a,b,c,d//andalsob.size()//tocalculatereturnvaluereturn0.0;}};大体上我的问题是如何

c++ - C/C++ __restrict 类型

有没有一种方法可以使用typedef整数/浮点类型来定义这意味着没有别名?等同于(但原始结构)的东西:templatestructrestrict{T*__restrictdata;};作为相关问题,是否可以询问gcc它确定指针的别名/无别名是什么? 最佳答案 如评论中所述,许多较新的C++编译器确实支持restrict类型限定符的C99实现。由于restrict在C++中不是保留关键字,因此编译器通常使用__restrict或__restrict__。两者GCC和VisualC++很好地记录这一点,并明确引用C99。C++1998

c++ - 类与结构的内存布局如何

我来自C编程,其中结构中的数据首先是顶级变量,然后是第二个、第三个等等。我现在正在用C++编程,我正在使用一个类。我基本上想要达到同样的效果,但我也想要get/set方法,也许还有其他方法(我也想尝试以C++风格来做,可能会学到一些新东西)。是否有保证,例如公共(public)变量将首先在内存中,然后是私有(private)变量? 最佳答案 Isthereaguaranteee.g.thatthepublicvariableswillbefirstinmemorythentheprivatevariable?不,这样的保证没有做出-

c++ - 类方法 VS 类静态函数 VS 简单函数 - 性能方面?

好的,这就是我想要的:我已经编写了几个要求非常高的函数(主要是在位图等上运行),它们必须尽可能快现在,我们还要提一下,这些函数也可以按类型分组,甚至可以按它们操作的变量类型分组。问题是,除了算法的实现之外,我还应该做些什么-从技术的角度来看-以免搞乱速度。现在,我正在考虑以下情况:将它们创建为简单的函数,并将必要的参数作为参数传递创建一个类(用于“分组”/组织目的)并将它们声明为静态按类型创建类,例如创建一个用于处理位图的类,为每个位图创建该类的一个新实例(例如Bitmap*myBitmap=newBitmap(1010);),并使用其内部方法对其进行操作(例如myBitmap->ge

c++ - 为什么要检查 if (*argv == NULL)?

这个问题在这里已经有了答案:Whencanargv[0]havenull?(4个答案)关闭5年前。在我目前正在学习的数据结构类(class)中,我们的任务是用C++编写网络爬虫。为了让我们抢先一步,教授为我们提供了一个从给定URL获取源代码的程序和一个简单的HTML解析器来去除标签。该程序的主函数接受参数,因此使用argc/argv。用于检查参数的代码如下://Processtheargumentsif(!strcmp(option,"-h")){//dostuff...}elseif(!strcmp(option,"")){//dostuff...}elseif(!strcmp(op

c++ - 错误 LNK1561 : entry point must be defined

我正在使用VisualStudio2012。我的解决方案有3个项目项目A项目BprojectC层次结构就像projectC依赖于projectB而后者又依赖于projectA。projectC中有一个ma​​in函数,projectB和projectA中没有main。我得到的错误是:errorLNK1561:entrypointmustbedefinedprojectAerrorLNK1561:entrypointmustbedefinedprojectB我试过改变ConfigurationProperties->Linker->System->SubSystemtoConsole(/

c++ - 为什么在 C++ 中更喜欢 char* 而不是 string?

我是一名尝试编写C++代码的C程序员。我听说C++中的string在安全性、性能等方面优于char*,但有时似乎char*更好选择。有人建议程序员不要在C++中使用char*,因为我们可以做所有char*可以用string做的事情,而且更安全、更快。你曾经在C++中使用过char*吗?具体条件是什么? 最佳答案 使用std::string更安全,因为您无需担心为字符串分配/释放内存。C++std::string类很可能在内部使用char*数组。但是,该类将为您管理内部数组的分配、重新分配和释放。这消除了使用原始指针带来的所有常见风险